Enterprise storage systems store data in large-scale environments and differ from consumer storage systems in both the size of the environment and the types of technologies that store and manage the data. A large-scale environment that stores data is typically referred to as a storage area network (SAN). SANs are commonly used in enterprise storage systems to transfer data between computer systems and storage devices. A typical SAN provides a communication infrastructure, including physical connections between computer systems, storage devices, and a management layer, which organizes the connections, storage devices, and computer systems.
In a SAN environment, computer systems, typically referred to as hosts, connect to the SAN via one or more host bus adapters. In the case of a Fibre Channel SAN, the physical connections between hosts and storage devices may include special Fibre Channel host bus adapters, Fibre Channel switches, Fibre Channel routers, and optical fiber.
Storage devices may include multiple disk drives that combine to form a disk array. A typical disk array includes a disk array controller, a cache, disk enclosures, and a power supply. Examples of disk arrays include the SYMMETRIX Integrated Cache Disk Array System the CLARIION Disk Array System, both available from EMC Corporation of Hopkinton, Mass. A disk array controller is a piece of hardware that provides storage services to computer systems that access the disk array. The disk array controller may attach to a number of disk drives that are located in the disk enclosures. For example, the disk drives may be organized into RAID groups for efficient performance. RAID (redundant array of inexpensive disks) is a system that uses multiple disk drives that share or replicate data among the drives. Accordingly, in a RAID system, instead of identifying several different hard drives, an operating system will identify all of the disk drives as if they are a single disk drive.
Disk array controllers connect to a SAN via a port. A port serves as an interface between the disk array controller and other devices, such as the hosts, in the SAN. Each disk array controller typically includes two or more ports. Disk array controllers may communicate with other devices using various protocols, such as the SCSI (Small Computer System Interface) command protocol over a Fibre Channel link to the SAN. In the SCSI command protocol, each device is assigned a unique numerical identifier, which is referred to as a logical unit number (LUN). Further, communication using the SCSI protocol is said to occur between an “initiator” (e.g., a host) and a “target” (e.g., a storage device) via a path. For example, a path may include a host bus adapter, an associated SCSI bus or Fibre Channel cabling, and a single port of a disk array controller.
Management of a path is provided by path management software. Path management software is a host-based software solution that is used to manage SANs and, among other things, can detect load imbalances for disk array controllers in a SAN and can identify alternate paths through which to route data. An example of path management software is EMC POWERPATH by EMC Corporation of Hopkinton, Mass.
Although prior path management software systems may monitor load balances and identify alternate paths through which to route data, a network administrator must evaluate the alternative paths and select which paths to use for routing data. The number of alternate paths and routing decisions that a network administrator must make increases dramatically as the amount of data and number of physical connections between an initiator and a target increase. This may cause a delay in the network administrator selecting an optimal path, and lead to increased costs due to having network administrators perform path selection. Therefore, conventional techniques are limited and suffer from one or more drawbacks.
In view of the foregoing, there is a need for improved systems and methods for selecting paths in a host-based I/O multi-path system.